﻿using System;
using System.Drawing;
using System.IO;
using ImageResizer.Properties;

namespace ImageResizer.Outputs.Destination
{
    /// <summary>
    /// Classe pour gérer une sortie en local
    /// </summary>
    internal class LocalOutputDestination : IOutputDestination
    {
        /// <summary>
        /// Initialise une nouvelle instance de la classe LocalOutputDesintation.
        /// </summary>
        /// <param name="path">le répertoire de destination</param>
        public LocalOutputDestination(string path)
        {
            Path = path;
        }

        /// <summary>
        /// Container du type de sortie
        /// </summary>
        public OutputType Type
        {
            get { return OutputType.Local; }
        }

        /// <summary>
        /// Container de la destination de la sortie
        /// </summary>
        public string Path { get; private set; }

        /// <summary>
        /// Container des informations de connection de la sortie (optionnel)
        /// </summary>
        public Connection Connection
        {
            get { return null; }
        }

        /// <summary>
        /// réalise la copie d'un fichier
        /// </summary>
        /// <param name="fileToCopy">le chemin (local) du fichier à copier</param>
        /// <param name="destinationFile">le chemin de destination</param>
        /// <returns>true si la copie OK   false sinon</returns>
        public bool Process(string fileToCopy, string destinationFile)
        {
            //TODO
            throw new NotImplementedException();
        }

        /// <summary>
        /// réalise la copie d'un fichier
        /// </summary>
        /// <param name="streamToCopy">le stream à copier</param>
        /// <param name="destinationFile">le chemin de destination</param>
        /// <returns>true si la copie OK   false sinon</returns>
        public bool Process(Stream streamToCopy, string destinationFile)
        {
            //TODO
            throw new NotImplementedException();
        }

        /// <summary>
        /// réalise la copie d'une image
        /// </summary>
        /// <param name="imageToCopy">l'image à copier</param>
        /// <param name="destinationFile">le chemin de destination</param>
        /// <returns>true si la copie OK   false sinon</returns>
        public bool Process(Image imageToCopy, string destinationFile)
        {
            //TODO
            throw new NotImplementedException();
        }
    }
}